package com.example.demo.Test;

import com.example.demo.util.dateUtil;
import org.apache.log4j.Logger;

import java.util.*;

/**
 * set,List和map集合练习
 *
 * Collection
 * --List：将以特定次序存储元素。
 * --ArrayList / LinkedList / Vector
 * --Set ： 不能含有重复的元素，自行排序
 * --HashSet / TreeSet
 * Map
 * --HashMap
 * --HashTable
 * --TreeMap
 *
 * @version 1.0.0.0
 * @auhtor 崔少良 2018/6/7 0007
 */
public class SetAndMap {
    private static final Logger logger = Logger.getLogger(SetAndMap.class.getSimpleName());
    public static void main(String[] args) {
        dateUtil.getDate();
        drillList();
        drillSet();
    }
    /**
     * map映射练习
     * @author Create by 崔少良 2018-06-07 上午 11:50
     */
    public static void drillMap(){
        Map<String,Integer> m = new HashMap<>();
        m.put("",1);//向集合中加入元素  Object
        m.remove("");//删除与KEY相关的元素  Object
        m.putAll(m);//将来自特定映像的所有元素添加给该映像
        m.clear();//从映像中删除所有映射
    }
    /**
     * list列表练习
     * @author Create by 崔少良 2018-06-07 上午 11:24
     */
    public static void drillList(){
        List<Integer> l = new ArrayList<>();
        boolean a = l.add(1);//向集合中加入一个对象的引用
        l.clear();//删除集合中所有的对象，即不再持有这些对象的引用
        boolean c = l.isEmpty();//判断集合是否为空
        boolean d = l.contains(new Object());//判断集合中是否持有特定对象的引用
//        Iterartor e = l.iterator();//返回一个Iterator对象，可以用来遍历集合中的元素
        Integer f = l.remove(1);//从集合中删除一个对象的引用
        int g = l.size();//返回集合中元素的数目
        Object[] os = l.toArray();//返回一个数组，该数组中包括集合中的所有元素
        for (int i = 0; i < l.size(); i++) {
//            l.hasNext();//判断集合中元素是否遍历完毕，如果没有，就返回true
//            l.next();//返回下一个元素
            l.remove(0);//从集合中删除上一个有next()方法返回的元素。
        }
    }
    /**
     * set集合练习
     * @author Create by 崔少良 2018-06-07 上午 11:23
     */
    public static void drillSet(){
        Set<Integer> s = new HashSet();
        s.add(1);
        s.add(2);
        s.add(3);
        logger.error(s);
        List<Integer> l = new ArrayList<>();
        l.add(4);
        l.add(5);
        l.add(3);
        logger.info(l);
        s.addAll(l);
        logger.warn(s);
        s.remove(5);
        logger.fatal(s);
    }
}
